1. Field of the Invention
The invention relates to the field of computer graphics, specifically to data processor structures utilizing substantially independent parallel processors in distinct phases of operations.
2. Prior Development Considerations
Perhaps video games are the best known form of computer graphics systems. However, the technology involves a considerable number of other forms of display apparatus as for training, designing, modelling and so on. Typically these systems give the viewer the impression of looking at a television set, or through a window at a scene. In graphics terminology, the window is called a "viewport". The creation of a scene in a "viewport" from primitive object data involves several individual processing operations as generally well known in the art. Scenes are created with respect to a specific viewpoint.
At the outset, a computer graphics system must traverse a data structure and select the object data that is relevant to the scene. Object data may represent objects, polygons or lines. The selected object data is transformed into a convenient coordinate system where it can be compared to the viewport. Such comparison enables the data to be clipped in that those parts of objects that lie outside the viewport are cut away.
After object data for a scene is defined for a specific viewpoint, it is scan converted, specifically it is changed from a set of vertices and connectivity information that imply lines and surfaces, to a list of picture elements (pixels) that can be processed to depict the lines and surfaces. The pixels also may be preliminarily shaded, that is color determinations are indicated.
In processing individual pixels, the visibility of object surfaces is determined for each pixel. That is, only the closest surface to the viewer should be visible as represented by each pixel in a display. The most common algorithm used to omit hidden surfaces involves the so called "Z buffer". Each pixel is assigned a Z value that indicates the distance from a specific surface location to a viewpoint. Essentially, Z values of the dissected surfaces are compared and of all the surface locations contending for presence in a pixel, the one that is closest to the viewpoint may be stored in a frame buffer. Data representing other surfaces is discarded. Numerous visibility algorithms exist, as for instance see U.S. Pat. No. 4,918,626, entitled COMPUTER GRAPHICS PRIORITY SYSTEM WITH ANTIALIASING, issued Apr. 17, 1992, to Gary S. Watkins, Glen A. Eckart and Russell A. Brown.
To improve the appearance of displays, another pixel processing step involves blending pixels. That is, to avoid jagged lines or edges and accommodate transparency, the representations of two surfaces that contend for presence in a pixel, may be blended.
In the generation of picture data, individual pixel data stored in the frame buffer is reformatted and provided in a raster scan lined pattern to drive a display apparatus, e.g. a cathode ray (CRT) apparatus. As the data is processed, the frame buffer containing frame buffer pixels is cyclically updated or refreshed by blending update pixels with old frame buffer pixels to reflect additional primitives or a changing scene.
The operations attendant the steps as explained above involve vast amounts of computation. For example, a scene may be composed from hundreds of thousands of polygons each of which must be processed with its presence reflected in individual display pixels.
As is the case in much of the field of computer engineering, one trick to make computations run fast involves parallelism. In that regard, in various applications within the computer field, it has been proposed to variously partition computations among parallel processors. Broadly, the system of the present invention is a graphics system utilizing parallel processing.